Storage device and operating method thereof

ABSTRACT

A storage device may include a non-volatile memory including a plurality of zones, the non-volatile memory configured to sequentially store data in at least one of the plurality of zones, and a processing circuitry configured to, receive a first write command and first data from a host, the first write command including a first logical address, identify a first zone of the plurality of zones based on the first logical address, compress the first data based on compression settings corresponding to the first zone, and write the compressed first data to the first zone.

CROSS-REFERENCE TO RELATED APPLICATION

This U.S. non-provisional application is a continuation of and claimsthe benefit of priority under 35 U.S.C. §§ 120/121 to U.S. patentapplication Ser. No. 17/032,654, filed on Sep. 25, 2020, which claimsthe benefit of priority under 35 U.S.C. § 119 to Korean PatentApplication No. 10-2020-0021033, filed on Feb. 20, 2020, in the KoreanIntellectual Property Office, the disclosures of each of which areincorporated herein in their entirety by reference.

BACKGROUND

Various example embodiments of the inventive concepts relate to astorage device, a storage system, and/or an operating method thereof,and more particularly, to a storage device, a storage system, and/or anoperating method thereof, which set a plurality of zones of anon-volatile memory on the basis of an attribute of write data, andcompress and store the write data according to a compression methodcorresponding to the plurality of zones.

A data center may store various pieces of data by using a storagedevice, such as a solid state drive (SSD), etc., and may provide aservice. SSDs may store hot data, which refers to data which isfrequently accessed, and cold data, which refers to data which isrelatively less accessed. SSDs based on the related art randomly storehot data and cold data without classification therebetween. Therefore,in the SSDs based on the related art, compression efficiency is reduced,and a write amplification factor (WAF) increases due to frequent garbagecollection.

SUMMARY

Various example embodiments of the inventive concepts provide a storagedevice, a storage system, and/or an operating method thereof, which seta plurality of zones of a non-volatile memory based on an attribute ofwrite data, and compress and store the write data based on a compressionmethod corresponding to the plurality of zones.

According to an aspect of at least one example embodiment of theinventive concepts, there is provided a storage device including anon-volatile memory including a plurality of zones, the non-volatilememory configured to sequentially store data in at least one of theplurality of zones, and processing circuitry configured to, receive afirst write command and first data from a host, the first write commandincluding a first logical address, identify a first zone of theplurality of zones based on the first logical address, compress thefirst data based on compression settings corresponding to the firstzone, and write the compressed first data to the first zone.

According to another aspect of at least one example embodiment of theinventive concepts, there is provided a storage system including a hostand a storage device including a non-volatile memory and processingcircuitry, the non-volatile memory including a plurality of zones andconfigured to sequentially store data, and the processing circuitryconfigured to control the non-volatile memory, wherein the host isconfigured to transfer write data and a write command including alogical address to the storage device, and the storage device isconfigured to, in response to the write command from the host, identifya first zone of the plurality of zones based on the logical address,compress the write data based on compression settings corresponding tothe first zone, and write the compressed write data into the first zone.

According to another aspect of at least one example embodiment of theinventive concepts, there is provided an operating method of a storagedevice including a storage device including a non-volatile memoryincluding a plurality of zones, the non-volatile memory configured tostore data, the operating method including receiving, using processingcircuitry, a first write command and first data from a host,identifying, using the processing circuitry, a first zone of theplurality of zones based on a first logical address included in thefirst write command, compressing, using the processing circuitry, thefirst data based on compression settings corresponding to the firstzone, and writing the compressed first data into the first zone.

BRIEF DESCRIPTION OF THE DRAWINGS

Various example embodiments of the inventive concepts will be moreclearly understood from the following detailed description taken inconjunction with the accompanying drawings in which:

FIG. 1 is a block diagram illustrating a storage system according to atleast one example embodiment;

FIG. 2 is a block diagram illustrating a storage device according to atleast one example embodiment;

FIG. 3 is a diagram illustrating a zone management table according to atleast one example embodiment;

FIG. 4 is a conceptual diagram illustrating a data compression operationaccording to at least one example embodiment;

FIG. 5 is a conceptual diagram illustrating a data compression operationbased on a write command unit according to at least one exampleembodiment;

FIG. 6 is a conceptual diagram illustrating a data compression operationbased on a block unit according to at least one example embodiment;

FIG. 7 is a conceptual diagram illustrating a data write operationaccording to at least one example embodiment;

FIG. 8 is a conceptual diagram illustrating an operation of updating awrite pointer, according to at least one example embodiment;

FIG. 9 is a conceptual diagram illustrating an operation of transferringcompression information according to at least one example embodiment;

FIG. 10 is a diagram illustrating a mapping table according to at leastone example embodiment;

FIG. 11 is a flowchart illustrating a write operation performed betweena host, a controller, and a non-volatile memory according to at leastone example embodiment;

FIG. 12 is a flowchart illustrating a write operation performed betweena zone management circuitry, a compression/decompression circuitry, anda non-volatile memory according to at least one example embodiment;

FIG. 13 is a flowchart illustrating a read operation performed between ahost, a controller, and a non-volatile memory according to at least oneexample embodiment;

FIG. 14 is a flowchart illustrating a read operation performed between azone management circuitry, a compression/decompression circuitry, and anon-volatile memory according to at least one example embodiment;

FIG. 15 is a flowchart illustrating an operating method of a storagedevice according to at least one example embodiment;

FIG. 16 is a block diagram illustrating a configuration of a controlleraccording at least one example embodiment; and

FIG. 17 is a block diagram illustrating a network system including aserver system according to at least one example embodiment.

DETAILED DESCRIPTION

FIG. 1 is a block diagram illustrating a storage system 10 according toat least one example embodiment.

Referring to FIG. 1 , the storage system 10 may include a host 100and/or a storage device 200, but the example embodiments are not limitedthereto, and the storage system 10 may include a greater or lessernumber of constituent components, such as a plurality of hosts, aplurality of storage devices, etc. Also, the storage device 200 mayinclude a controller 300 (e.g., processing circuitry), a non-volatilememory (NVM) 400, etc., but is not limited thereto. According to someexample embodiments, the controller 300 may include hardware such aslogic circuits (e.g., processing circuitry, etc.); a hardware/softwarecombination such as at least one processor core executing softwareand/or executing any instruction set; or a combination thereof. Forexample, the controller 300 more specifically may include, but is notlimited to, a field programmable gate array (FPGA), a programmable logicunit, an application-specific integrated circuit (ASIC), asystem-on-chip (SOC), an intellectual property (IP) block, etc. In atleast one example embodiment, each of the controller 300 and the NVM 400may be implemented as an individual chip, but is not limited thereto.Also, the controller 300 may include a zone management circuitry 310(e.g., a zone management module, logic, component, etc.) and/or acompression/decompression circuitry 320 (compression/decompressionmodule, logic, component, etc.), etc. According to at least one exampleembodiment, the zone management circuitry 310 and thecompression/decompression circuitry 320 may be integrated, but theexample embodiments are not limited thereto. Also, the NVM 400 mayinclude a plurality of zones (Zone 1 to Zone n) 410-1 to 410-n, but isnot limited thereto.

The storage system 10 may be implemented as, included in, and/orconnected to, for example, a personal computer (PC), a data server, anetwork-attached storage, a smart device, an Internet of things (IoT)device, and/or a portable electronic device, but is not limited thereto.Examples of the portable electronic device may include laptop computers,mobile phones, smartphones, tablet PCs, personal digital assistants(PDAs), enterprise digital assistants (EDAs), digital still cameras,digital video cameras, audio devices, portable multimedia players (PMP),personal navigation devices (PNDs), MP3 players, handheld game consoles,e-books, wearable devices, virtual reality and/or augmented realitydevices, etc.

The host 100 may perform at least one data management operation in thestorage system 10. In at least one example embodiment, the host 100 mayprovide a data write request and/or a data read request, etc., to thestorage device 200, and based on the request from the host 100, thestorage device 200 may write data in the NVM 400, or may read data fromthe NVM 400 and provide the read data to the host 100, but is notlimited thereto. Also, based on a data erase request from the host 100,the storage device 200 may perform an erase operation on data stored ina zone indicated by the host 100, etc.

The storage device 200 may include one or more storage mediums. Forexample, the storage device 200 may include one or more hard disk drives(HDDs) and/or SSDs, etc. When the storage device 200 includes an SSD,the storage device 200 may include a plurality of memory chips. Forexample, the storage device 200 may include a plurality of flash memorychips (for example, NAND memory chips), which non-volatilely store data.Additionally, the storage device 200 may correspond to at least oneflash memory chip. Additionally, the storage device 200 may correspondto a memory card including one or more flash memory chips.

According to at least one example embodiment, a plurality of storagemediums included in the NVM 400 may be a plurality of storage spaces,and may be set to first to n^(th) zones (Zone 1 to Zone n) 410-1 to410-n, but the example embodiments are not limited thereto. Each zonemay be variously defined, and for example, a size of each zone may bevariously defined. For example, each of the plurality of zones 410-1 to410-n may include a plurality of blocks or a plurality of pages, but arenot limited thereto. A page may correspond to a data write unit or adata read unit, and a block may include a plurality of pages. Therefore,each of the plurality of zones 410-1 to 410-n may have a size which isgreater than a data write unit or a data read unit. A size of each ofthe plurality of zones 410-1 to 410-n is not limited to theabove-described example, and sizes of the plurality of zones 410-1 to410-n may be the same as each other, or may differ from each other.

Each of the plurality of zones 410-1 to 410-n of the NVM 400 maysequentially store data, but are not limited thereto. In detail, theplurality of zones 410-1 to 410-n may not randomly store data and maystore data sequentially from a first storage location of each zone, etc.For example, in a case where each of the plurality of zones 410-1 to410-n stores data for the first time, each of the plurality of zones410-1 to 410-n may store data sequentially from a first storage locationof each zone. Also, in a case where each of the plurality of zones 410-1to 410-n additionally stores data (e.g., stores additional data), eachof the plurality of zones 410-1 to 410-n may identify a storage locationat which data is lastly written (e.g., was most recently written, waspreviously written, etc.) and may store data sequentially from a storagelocation next and/or sequential to the identified storage location, etc.

Therefore, the host 100 may determine a zone where data is to be writtenand may transfer, to the storage device 200, a write request including alogical address (for example, a logical memory address representing astart address and/or location of a zone) corresponding to the determinedzone. Also, the storage device 200 may identify a zone corresponding tothe logical address included in the write request, identify a storagelocation at which data is lastly (e.g., most recently and/or previously)stored in the identified zone, and store received write datasequentially from a storage location next to the identified storagelocation. As described above, a storage space may be set to a pluralityof zones, and the storage device 200, which sequentially stores data ineach zone, may be referred to as a zoned namespaces (ZNS) storage, butthe example embodiments are not limited thereto.

According to at least one example embodiment, the plurality of zones410-1 to 410-n of the NVM 400 may be set based on at least one attributeof write data. In at least one example embodiment, each of the pluralityof zones 410-1 to 410-n of the NVM 400 may be set based on the number ofpredicted accesses of written data (e.g., predicted number of writeaccesses) or the amount of data to be written. For example, theplurality of zones 410-1 to 410-n may be set to a first zone (Zone 1)storing data (i.e., hot data) where the number of prediction accesses ishigh, a second zone (Zone 2) storing data (i.e., normal data) where thenumber of prediction accesses is medium, and a third zone (Zone 3)storing data (i.e., cold data) where the number of prediction accessesis low. Therefore, the storage device 200 may divide and store the hotdata and the cold data, thereby reducing, decreasing, and/or minimizingthe amount of and/or frequency of garbage collection. A method ofsetting the plurality of zones 410-1 to 410-n is not limited to theabove-described examples, and the plurality of zones 410-1 to 410-n maybe set to fewer or more zones than three. For example, the number ofpredicted memory accesses may be determined by the host 100 and/or thememory controller 300 based on historical memory access patterns,analysis of instructions stored in instruction queue(s) (not shown) fora processor and/or processor core of the host 100 and/or the memorycontroller 300, etc., but the example embodiments are not limitedthereto.

The controller 300 may include a zone management circuitry 310. The zonemanagement circuitry 310 may manage the plurality of zones 410-1 to410-n of the NVM 400, and/or may support a function of processingvarious requests for the plurality of zones 410-1 to 410-n, but is notlimited thereto. In at least one example embodiment, the zone managementcircuitry 310 may set a storage space of the NVM 400 to the plurality ofzones 410-1 to 410-n on the basis of at least one management commandreceived from the host 100. For example, the zone management circuitry310 may set the storage space of the NVM 400 to a first zone (Zone 1)storing hot data, a second zone (Zone 2) storing normal data, and athird zone (Zone 3) storing cold data on the basis of the managementcommand received from the host 100. The above-described example ismerely an example of a method of setting a storage space of the NVM 400to a plurality of zones, and the example embodiments are not limitedthereto.

Also, according to at least one example embodiment, the zone managementcircuitry 310 may set a compression method and/or a decompression methodfor each of the plurality of zones 410-1 to 410-n. In at least oneexample embodiment, the zone management circuitry 310 may set acompression ratio (a ratio of a compressed data size to an original datasize) corresponding to each of the plurality of zones 410-1 to 410-n onthe basis of the management command received from the host 100. Forexample, the zone management circuitry 310 may set a compression ratiofor the first zone (Zone 1), storing hot data, to 100% (i.e.,compression is not performed), set a compression ratio of the secondzone (Zone 2), storing normal data, to 75%, and set a compression ratioof the third zone (Zone 3), storing cold data, to 50%, but the exampleembodiments are not limited thereto and any compression ratio may be setfor each of the zones. Setting a compression ratio as an example of acompression method/decompression method is merely an example, and theexample embodiments are not limited thereto. For example, a method ofsetting a compression method/decompression method may set variousalgorithms, such as a compression manner and/or compression algorithm,an encryption manner and/or algorithm, or a data compression unit (e.g.,unit size of compression), may set the compression ratio automaticallyor dynamically based on storage device performance and/or conditions,use different compression algorithms for different zones, etc.

Also, according to at least one example embodiment, the zone managementcircuitry 310 may write and/or read data on the basis of the setcompression method/decompression method. In at least one exampleembodiment, when a write request is received from the host 100, the zonemanagement circuitry 310 may compress write data (e.g., data to bewritten to the NVM 400) on the basis of a compression ratio of a zonecorresponding to the write request by using thecompression/decompression circuitry 320 and may write the compressedwrite data in the zone corresponding to the write request. Also, when aread request is received from the host 100, the zone managementcircuitry 310 may read data from a zone corresponding to the readrequest, decompress the read data (e.g., the previously compressed data)on the basis of a compression ratio of the zone corresponding to theread request by using the compression/decompression circuitry 320, andtransfer decompressed read data to the host 100.

The controller 300 may include the compression/decompression circuitry320. The compression/decompression circuitry 320 may support a functionof compressing and/or decompressing data. According to at least oneexample embodiment, the compression/decompression circuitry 320 mayreceive data from the zone management circuitry 310, compress thereceived data on the basis of a compression method and/or compressionsettings corresponding to a zone where the received data is to bewritten, and transfer the compressed data to the zone managementcircuitry 310. Also, the compression/decompression circuitry 320 mayreceive data from the zone management circuitry 310, decompress thereceived data on the basis of a decompression method and/ordecompression settings corresponding to a zone from which the receiveddata is read, and transfer the decompressed data to the zone managementcircuitry 310.

Therefore, the storage device 200 may adjust data input/output latencyand the efficiency of a storage space of a storage device. For example,when a compression ratio of the first zone (Zone 1) storing the hot datais 100% (e.g., the data in Zone 1 is uncompressed) and a compressionratio of the third zone (Zone 3) storing the cold data is 50%, thestorage device 200 may not perform compression and decompression of thehot data which is frequently accessed, and thus may quickly write andread the hot data (e.g., write and read data from Zone 1 atapproximately the same speed as a conventional storage device), andmoreover, the storage device 200 may perform compression on the colddata, which is relatively less accessed, on the basis of a highcompression ratio, thereby increasing the efficiency of a storage spacewhile reducing the decrease in speed in performing read and writeoperations on the storage device 200 relative to a storage device whichcompresses/decompresses all data stored on the device.

The zone management circuitry 310 and the compression/decompressioncircuitry 320 may each be implemented as various types and may beincluded in and/or integrated with the controller 300. For example, thezone management circuitry 310 or the compression/decompression circuitry320 may be implemented with hardware such as a logic circuit, processingcircuitry, etc., for performing at least one support function related tothe zone management method and the compression/decompression method ofthe example embodiments, respectively. Additionally, the zone managementcircuitry 310 and/or the compression/decompression circuitry 320 may beimplemented as a combination of hardware and software, for example asoftware program (e.g., program code, firmware, computer readableinstructions, etc.) loaded into and executed by processing circuitryincluded in the controller 300 may execute the functionality of the zonemanagement circuitry 310 or the compression/decompression circuitry 320as discussed with respect to at least one example embodiment.

As described above, the storage system 10 according to at least oneexample embodiment may set the storage space of the NVM 400 to theplurality of zones 410-1 to 410-n on the basis of the number ofprediction accesses of data (e.g., predicted number of accesses and/ordata operations) and may compress write data (e.g., data to be written)on the basis of a compression method, settings, and/or algorithmcorresponding to each of the plurality of zones 410-1 to 410-n, or maydecompress read data (e.g., data stored on the NVM 400) on the basis ofa decompression method, settings, and/or algorithm corresponding to eachof the plurality of zones 410-1 to 410-n. That is, the storage system 10may divide and store the hot data and the cold data in different zones,and thus may have an effect of reducing a write amplification factor(WAF) by decreasing and/or minimizing garbage collection, and moreover,the storage system 10 may compress and store the hot data and the colddata at different compression ratios, and thus may appropriately and/orbeneficially adjust the tradeoff between data input/output latency andthe compression efficiency of the storage space.

According to a modifiable example embodiment, the zone managementcircuitry 310 may set the plurality of zones 410-1 to 410-n for eachuser of the storage device 200, based on a command received from thehost 100. For example, the zone management circuitry 310 may set a firstzone (Zone 1) storing data associated with a first user (and/or a firsthost), a second zone (Zone 2) storing data associated with a second user(and/or a second host), and a third zone (Zone 3) storing dataassociated with a third user (and/or third host), etc., but the exampleembodiments are not limited thereto, and for example, two or more of thezones may be associated with a single user/host, or a single zone may beassociated with two or more users/hosts, etc.

Also, the zone management circuitry 310 may set a compression method(e.g., compression settings, algorithms, etc.) and/or a decompressionmethod (e.g., settings, algorithms, etc.) corresponding to each of theplurality of zones 410-1 to 410-n set for each user (and/or host), basedon a command received from the host 100. For example, the zonemanagement circuitry 310 may set a compression ratio of the first zone(Zone 1) to 100% on the basis of a request of the first user who prefersand/or selects a fast input/output and may set a compression ratio ofthe third zone (Zone 3) to 50% on the basis of a request of the thirduser who prefers and/or selects the high efficiency of a storage space,etc.

As described above, the storage system 10 according to at least oneexample embodiment may set the storage space of the NVM 400 to theplurality of zones 410-1 to 410-n on the basis of a user and/or host andmay individually set a compression method corresponding to each of theplurality of zones 410-1 to 410-n on the basis of a selection and/orpreference of the user and/or host, thereby providing a customizedservice to the user and/or host.

FIG. 2 is a block diagram illustrating a storage device 200 according toat least one example embodiment.

Referring to FIGS. 1 and 2 , the storage device 200 may include acontroller 300 (e.g., processing circuitry, etc.) and/or an NVM 400, butis not limited thereto. Also, the controller 300 may include a zonemanagement circuitry 310 and/or a compression/decompression circuitry320, and the NVM 400 may include a plurality of zones 410-1 to 410-n,but they are not limited thereto. In at least one example embodiment,the zone management circuitry 310 may include a zone management table311 and/or a write pointer 313, but is not limited thereto.

The zone management table 311 may be a table, list, database, etc.,which includes information about a compression method corresponding toeach of the plurality of zones 410-1 to 410-n. For example, the zonemanagement table 311 may include information about a compression ratiocorresponding to each of the plurality of zones 410-1 to 410-n. Adetailed description of the zone management table 311 will be givenbelow with reference to FIG. 3 . In at least one example embodiment,when a write command CMD and write data DATA are received from the host100, the zone management circuitry 310 may identify a zone for writingthe write data DATA on the basis of a logical address (e.g., memoryaddress) included in the write command CMD, and may identify acompression method corresponding to a zone identified based on the zonemanagement table 311. Also, the zone management circuitry 310 maytransfer the write data DATA and information about a compression methodto the compression/decompression circuitry 320 to request compression ofthe write data DATA based on the compression method, setting, algorithm,etc.

Based on a request of the zone management circuitry 310, thecompression/decompression circuitry 320 may compress the received writedata DATA on the basis of the transferred information about thecompression method to generate compression data (e.g., compressed data)Comp_DATA. For example, when the transferred information about thecompression method includes information representing a compression ratioof 75% (e.g., the data being 25% compressed), thecompression/decompression circuitry 320 may compress the write data DATAby 25% to generate the compression data (e.g., compressed data)Comp_DATA. According to some example embodiments, as a result of theinclusion of the compression method (e.g., compression settings,algorithms, etc.) in the received write data DATA, thecompression/decompression circuitry 320 compresses the write data DATAto generate the compression data Comp_DATA, and a real and/or actualcompression ratio of the compression data Comp_DATA may be lower than areceived compression ratio (e.g., more compressed), but is not limitedthereto. That is, the write data DATA may be more compressed than thetarget amount of compression and/or desired compression ratio, due tothe compression method, settings, and/or algorithm used, and/or thecomposition of the data received, etc. In this case, thecompression/decompression circuitry 320 may add dummy data to thecompressed write data DATA so that the real and/or actual compressionratio of the compression data Comp_DATA is equal to the receivedcompression ratio, thereby generating the compression data (e.g.,compressed data) Comp_DATA. Also, the compression/decompressioncircuitry 320 may transfer the compression data (e.g., compressed data)Comp_DATA to the zone management circuitry 310.

According to other example embodiments, a result of thecompression/decompression circuitry 320 compressing the write data DATAto generate the compression data Comp_DATA, may lead to the realcompression ratio of the compression data Comp_DATA being higher thanthe compression ratio received from the zone management circuitry 310.That is, the write data DATA may not be compressed to the samecompression ratio as the target compression ratio. Therefore, when thecompression data Comp_DATA is received from thecompression/decompression circuitry 320, the zone management circuitry310 may identify a real (e.g., actual) compression ratio of the receivedcompression data Comp_DATA and may compare the real compression ratiowith a target compression ratio corresponding to a zone where thecompression data Comp_DATA is to be written.

For example, when the real compression ratio is higher than the targetcompression ratio associated with a target zone (e.g., the zone wherethe write data DATA is to be written), the zone management circuitry 310may read the write data DATA from a buffer (not shown), whichtemporarily stores the write data DATA received from the host 100, andmay determine that the write data DATA, instead of the compression dataComp_DATA, is to be written into the zone. On the other hand, when thereal compression ratio matches the target compression ratio, the zonemanagement circuitry 310 may determine that the compression dataComp_DATA received from the compression/decompression circuitry 320 isto be written into the zone.

The zone management circuitry 310 may write data (e.g., the write dataDATA or the compression data Comp_DATA), determined to be written, inthe NVM 400 by using the write pointer 313. According to some exampleembodiments, the write pointer 313 may be a plurality of pointers andeach of the plurality of pointers may be associated with and/orcorrespond to a respective zone of the NVM 400. Here, the write pointer313 may denote a pointer representing a storage location at which datais lastly stored (and/or most recently stored) in each zone. In at leastone example embodiment, the zone management circuitry 310 may identifythe write pointer 313 of a zone where data is to be written. Also, thezone management circuitry 310 may transfer the write data DATA or thecompression data Comp_DATA to the NVM 400, and simultaneously (and/orsequentially), may control the NVM 400 to write data at a next storagelocation of the identified write pointer 313.

In the illustration and description of FIG. 2 , it is illustrated anddescribed that the zone management circuitry 310 includes the zonemanagement table 311 and the write pointer 313, but the zone managementtable 311 and/or the write pointer 313 may be loaded into a separatememory (for example, dynamic random access memory (DRAM), an externalcache memory, etc.) of the controller 300.

FIG. 3 is a diagram illustrating a zone management table ZMT accordingto at least one example embodiment.

Referring to FIGS. 1 and 3 , the zone management table ZMT according toat least one example embodiment may include information about a logicaladdress (and/or memory address) ZSLBA, a zone identification (ID) (ZoneID), a zone level (Zone Level), and a compression ratio (Comp Ratio) ofeach of a plurality of zones 410-1 to 410-n. As described above withreference to FIG. 2 , the storage device 200 may compress data on thebasis of a compression method, settings, algorithm, etc., correspondingto each zone with reference to the zone management table ZMT.Hereinafter, for convenience of description, it may be assumed that theplurality of zones 410-1 to 410-n of the NVM 400 include three zones.

According to at least one example embodiment, the zone ID (Zone ID) ofeach of the plurality of zones 410-1 to 410-n may denote a name, anumber, and/or any other unique identifier representing each zone. Forexample, referring to FIG. 3 , the zone management table ZMT may includea first zone Zone 1, a second zone Zone 2, and a third zone Zone 3 asIDs of three zones, but the example embodiments are not limited thereto.Moreover, according to at least one example embodiment, the logicaladdress ZSLBA of each of the plurality of zones 410-1 to 410-n maydenote a logical address representing each zone or representing a startlocation of each zone. In at least one example embodiment, the logicaladdress ZSLBA of each of the plurality of zones 410-1 to 410-n may beimplemented as a logical address of a first block or a first page ofeach zone. For example, referring to FIG. 3 , the zone management tableZMT may include a logical address ZSLBA 1 of the first zone Zone 1, alogical address ZSLBA 2 of the second zone Zone 2, and a logical addressZSLBA 3 of the third zone Zone 3. However, the example embodiments arenot limited thereto, and for example, a physical memory address may beused instead of, or in addition to, the logical address, etc.

Moreover, according to at least one example embodiment, a zone level(Zone Level) of each of the plurality of zones 410-1 to 410-n mayrepresent the degree of compression of data written in each zone. Forexample, referring to FIG. 3 , the zone management table ZMT may includea plurality of level designations, such as Level 1, which is a level ofthe first zone Zone 1 storing hot data and is a level for performingcompression with high compression ratio (e.g., the data is notcompressed, or compressed to a small degree, etc.), Level 2, which is alevel of the second zone Zone 2 storing normal data and is a level forperforming compression with lower compression ratio than the Level 1(e.g., the data stored in Zone 2 is more compressed than the data storedin Zone 1, but less compressed than the data in Zone 3, etc.), and Level3, which is a level of the third zone Zone 3 storing cold data and is alevel for performing compression with the lowest compression ratio(e.g., the data stored in Zone 3 is the most compressed and/or highlycompressed, etc.), but the example embodiments are not limited thereto,and there may be a greater or lesser number of compression levels, etc.

According to at least one example embodiment, the compression ratio(Comp Ratio) of each of the plurality of zones 410-1 to 410-n mayrepresent a ratio of a size of compressed data to an original size ofdata written in each zone. For example, referring to FIG. 3 , the zonemanagement table ZMT may include 100% as a compression ratio of thefirst zone Zone 1 (e.g., the file size of the “compressed data” is thesame as the original file size), 75% as a compression ratio of thesecond zone Zone 2 (e.g., the file size of the “compressed data” is 25%smaller than the file size of the original file), and 50% as acompression ratio of the third zone Zone 3 (e.g., the file size of the“compressed data” is 50% smaller than the file size of the originalfile), etc., but the example embodiments are not limited thereto, andfor example, other compression ratios may be used, etc.

In the illustration and description of FIG. 3 , the zone managementtable ZMT includes the information about the logical address ZSLBA, thezone ID (Zone ID), the zone level (Zone Level), and the compressionratio (Comp Ratio) of each of the plurality of zones 410-1 to 410-n, butthe example embodiments are not limited thereto, and one or more itemsmay be omitted and/or modified, or a separate item may be added, etc.

According to at least one example embodiment, the zone managementcircuitry 310 may generate the zone management table ZMT on the basis ofcontrol and/or based on instructions transmitted by the host 100. Forexample, the host 100 may transfer, to the zone management circuitry310, setting information for setting the storage space of the NVM 400 tothe plurality of zones 410-1 to 410-n on the basis of a data attribute(for example, the number of prediction accesses (e.g., predictedaccesses)) and a management command including information about acompression method (for example, a compression ratio) of each of theplurality of zones 410-1 to 410-n. Also, the zone management circuitry310 may set the plurality of zones 410-1 to 410-n on the basis of themanagement command received from the host 100, and may generate the zonemanagement table ZMT used to manage the plurality of zones 410-1 to410-n. The generated zone management table ZMT may be stored in the NVM400, and then, may be loaded into the zone management circuitry 310,etc.

In a storage device based on the related art, a controller checks anattribute of data to determine a compression method, and then,compresses and writes data on the basis of the determined compressionmethod. Due to this, the storage device based on the related art has aproblem where the overhead of latency caused by an operation of checkingan attribute of data increases the time required to complete every writeoperation performed by the conventional memory controller.

On the other hand, in at least one example embodiment, when a hostchecks an attribute of data to determine a zone where data is to bewritten and transfers a command including a logical address of thedetermined zone to the storage device 200, the storage device 200 mayidentify a compression method on the basis of a logical address and thezone management table ZMT, and may compress and write data on the basisof the identified compression method. Therefore, the storage device 200according to at least one example embodiment may omit an operationneeded for checking the data attributes of the data being written foreach write operation, thereby decreasing latency caused by a writeoperation.

Hereinafter, an operation of compressing data by using the zonemanagement table ZMT and writing the compressed data will be describedin detail with reference to FIGS. 4 to 9 .

FIG. 4 is a conceptual diagram illustrating a data compression operationaccording to at least one example embodiment. In detail, FIG. 4 is adiagram illustrating a data compression operation performed on the zonemanagement circuitry 310 and the compression/decompression circuitry 320of FIGS. 1 and 2 .

Referring to FIG. 4 , the zone management circuitry 310 may receivecommands CMD 0, CMD 1, and CMD 2 and pieces of data DATA 0, DATA 1, andDATA 2 from the host 100, but the example embodiments are not limitedthereto. In this example, the pieces of data DATA 0, DATA 1, and DATA 2received from the host 100 may include hot data, normal data, and colddata, but are not limited thereto. The data DATA 0 corresponding to thecommand CMD 0 may be the hot data, and the command CMD 0 may include alogical address ZSLBA 1 of a first zone Zone 1. The data DATA 1corresponding to the command CMD 1 may be the normal data, and thecommand CMD 1 may include a logical address ZSLBA 2 of a second zoneZone 2. The data DATA 2 corresponding to the command CMD 2 may be thecold data, and the command CMD 2 may include a logical address ZSLBA 3of a third zone Zone 3.

According to at least one example embodiment, the zone managementcircuitry 310 may identify the logical addresses ZSLBA 1, ZSLBA 2, andZSLBA 3 of a zone from the received commands CMD 0, CMD 1, and CMD 2,etc. Also, the zone management circuitry 310 may identify a compressionmethod corresponding to each of the identified logical addresses ZSLBA1, ZSLBA 2, and ZSLBA 3 on the basis of and/or using the zone managementtable ZMT. For example, referring to FIGS. 3 and 4 , the zone managementcircuitry 310 may identify a compression ratio of 100% corresponding tothe logical address ZSLBA 1 of the first zone Zone 1, identify acompression ratio of 75% corresponding to the logical address ZSLBA 2 ofthe second zone Zone 2, and identify a compression ratio of 50%corresponding to the logical address ZSLBA 3 of the first zone Zone 3,with reference to the zone management table ZMT, etc.

Also, the zone management circuitry 310 may transfer a compressionmethod, corresponding to the pieces of data DATA 0, DATA 1, and DATA 2,to the compression/decompression circuitry 320 to request compression.For example, the zone management circuitry 310 may issue a request, tothe compression/decompression circuitry 320, to compress the data DATA 0at a compression ratio of 100%, compress the data DATA 1 at acompression ratio of 75%, and compress the data DATA 2 at a compressionratio of 50%.

In FIG. 4 , for convenience of description, it is illustrated anddescribed that, as the zone management circuitry 310 transfers data tothe compression/decompression circuitry 320 to request compression ofthe data, the zone management circuitry 310 transfers the data DATA 0corresponding to a compression ratio of 100%. However, a compressionratio of 100% denotes that compression is not needed, and thus, the zonemanagement circuitry 310 may be implemented so that an operation oftransferring data corresponding to a compression ratio of 100% to thecompression/decompression circuitry 320 is omitted, etc.

Also, based on a request of the zone management circuitry 310, thecompression/decompression circuitry 320 may compress the pieces of dataDATA 0, DATA 1, and DATA 2 on the basis of information about a receivedcompression method to generate pieces of compression data Comp_DATA 0,Comp_DATA 1, and Comp_DATA 2. For example, referring to FIGS. 3 and 4 ,the compression/decompression circuitry 320 may compress the data DATA 0at a compression ratio of 100% to generate the compression dataComp_DATA 0, compress the data DATA 1 at a compression ratio of 75% togenerate the compression data Comp_DATA 1, and compress the data DATA 2at a compression ratio of 50% to generate the compression data Comp_DATA2.

In FIG. 4 , for convenience of description, it is illustrated anddescribed that, as the compression/decompression circuitry 320compresses the received data, the compression/decompression circuitry320 transfers the data DATA 0 corresponding to a compression ratio of100%. However, the compression/decompression circuitry 320 may beimplemented so that an operation of transferring data corresponding to acompression ratio of 100% to the compression/decompression circuitry 320is omitted. Also, the compression/decompression circuitry 320 maytransfer the generated pieces of compression data Comp_DATA 0, Comp_DATA1, and Comp_DATA 2 to the zone management circuitry 310.

The compression/decompression circuitry 320 may compress data usingvarious size units according to at least one example embodiment incompressing data. For example, the compression/decompression circuitry320 may perform compression by a write command unit (e.g., a unit sizedesignated in the write command), or may perform compression by adesired unit and/or minimum unit (for example, a block unit) of writingdata into a zone, but the example embodiments are not limited thereto.This will be described below in detail with reference to FIGS. 5 and 6 .

FIG. 5 is a conceptual diagram illustrating a data compression operationbased on a write command unit, according to at least one exampleembodiment. In detail, FIG. 5 is a diagram illustrating a datacompression operation performed by the zone management circuitry 310 andthe compression/decompression circuitry 320 of FIGS. 1 and 2 .Hereinafter, a method of compressing data by a write command unit byusing the compression/decompression circuitry 320 according to at leastone example embodiment will be described.

The compression/decompression circuitry 320 may receive pieces of dataDATA 0, DATA 1, and DATA 2, etc., corresponding to a plurality ofcommands CMD 0, CMD 1, and CMD 2, etc. Also, thecompression/decompression circuitry 320 may compress the pieces of dataDATA 0, DATA 1, and DATA 2 by a plurality of command CMD 0, CMD 1, andCMD 2 units.

For example, referring to FIG. 5 , the compression/decompressioncircuitry 320 may identify the data DATA 0 corresponding to the commandCMD 0 and may perform compression on all of the identified data DATA 0.Also, the compression/decompression circuitry 320 may identify the dataDATA 1 corresponding to the command CMD 1 and may perform compression onall of the identified data DATA 1. Also, the compression/decompressioncircuitry 320 may identify the data DATA 2 corresponding to the commandCMD 2 and may perform compression on all of the identified data DATA 2.

As a result of compression of the pieces of data DATA 0, DATA 1, andDATA 2 by the compression/decompression circuitry 320, a real (e.g.,actual) compression ratio may be lower than a received compressionratio. In this case, the compression/decompression circuitry 320 may adddummy data to the compressed pieces of data DATA 0, DATA 1, and DATA 2to generate pieces of compression data Comp_DATA 0, Comp_DATA 1, andComp_DATA 2 having the received compression ratio, but the exampleembodiments are not limited thereto.

For example, referring to FIG. 5 , when the real compression ratio is65% as a result of compression performed on all of the data DATA 1, thecompression/decompression circuitry 320 may add the dummy data to thecompressed data DATA 1 to finally generate the compression dataComp_DATA 1 having a compression ratio of 75%. Also, when the realcompression ratio is 40% as a result of compression performed on all ofthe data DATA 2, the compression/decompression circuitry 320 may add thedummy data to the compressed data DATA 2 to finally generate thecompression data Comp_DATA 2 having a compression ratio of 50%, etc.

FIG. 6 is a conceptual diagram illustrating a data compression operationbased on a block unit, according to at least one example embodiment. Indetail, FIG. 6 is a diagram illustrating a data compression operationperformed by the zone management circuitry 310 and thecompression/decompression circuitry 320 of FIGS. 1 and 2 . Hereinafter,a method of compressing data by block units by using thecompression/decompression circuitry 320 according to at least oneexample embodiment will be described.

The compression/decompression circuitry 320 may receive pieces of dataDATA 0, DATA 1, and DATA 2 corresponding to a plurality of commands CMD0, CMD 1, and CMD 2. Also, the compression/decompression circuitry 320may compress the pieces of data DATA 0, DATA 1, and DATA 2 by blockunits, but is not limited thereto.

For example, referring to FIG. 5 , the compression/decompressioncircuitry 320 may perform compression on each of a plurality of blocks(e.g., three blocks, etc.) constituting the data DATA 0. Also, thecompression/decompression circuitry 320 may perform compression on eachof a plurality of blocks (e.g., four blocks, etc.) constituting the dataDATA 1. Also, the compression/decompression circuitry 320 may performcompression on each of a plurality of blocks (e.g., four blocks, etc)constituting the data DATA 2.

As a result of compressing each of a plurality of blocks constitutingthe pieces of data DATA 0, DATA 1, and DATA 2 by thecompression/decompression circuitry 320, a real compression ratio may belower than a received compression ratio. In this case, thecompression/decompression circuitry 320 may add dummy data to each ofthe compressed blocks to generate pieces of compression data Comp_DATA0, Comp_DATA 1, and Comp_DATA 2 having the received compression ratio.

For example, referring to FIG. 6 , when a real compression ratio (e.g.,actual compression ratio, etc.) of at least one compressed block is 65%as a result of compression performed on each of a plurality of blocksconstituting the data DATA 1, the compression/decompression circuitry320 may add the dummy data to the at least one compressed block togenerate the compression data Comp_DATA 1 having a compression ratio of75%. Also, when a real compression ratio of at least one compressedblock is 40% as a result of compression performed on each of a pluralityof blocks constituting the data DATA 2, the compression/decompressioncircuitry 320 may add the dummy data to the at least one compressedblock to finally generate the compression data Comp_DATA 2 having acompression ratio of 50%. However, the example embodiments are notlimited thereto, and according to some example embodiments, no dummydata is added to the compression data even if the real compression ratiois not equal to the target compression ratio, etc.

In the illustration and description of FIG. 6 , it is illustrated anddescribed that the compression/decompression circuitry 320 compressesdata by block units, but the example embodiments are not limitedthereto, and for example, the compression/decompression circuitry 320may compress data by page units or the like.

FIG. 7 is a conceptual diagram illustrating a data write operationaccording to at least one example embodiment. In detail, FIG. 7 is adiagram illustrating a data write operation performed by the zonemanagement circuitry 310 of FIGS. 1 and 2 .

Referring to FIGS. 4 and 7 , the zone management circuitry 310 may writepieces of compression data Comp_DATA 0, Comp_DATA 1, and Comp_DATA 2,received from the compression/decompression circuitry 320, in the NVM400, but is not limited thereto. In at least one example embodiment, thezone management circuitry 310 may write, (e.g., sequentially write,write in parallel, etc.) the pieces of compression data Comp_DATA 0,Comp_DATA 1, and Comp_DATA 2 in a plurality of zones (for example, firstto third zones) Zone 1, Zone 2, and Zone 3 corresponding to the piecesof compression data Comp_DATA 0, Comp_DATA 1, and Comp_DATA 2 by using aplurality of write pointers WP1, WP2, and WP3.

For example, the zone management circuitry 310 may identify the writepointer WP1 of the first zone Zone 1 corresponding to a logical addressZSLBA 1 of a zone included in a command CMD 0 and may write thecompression data Comp_DATA 0 at a next storage location of theidentified write pointer WP1. Also, the zone management circuitry 310may identify the write pointer WP2 of the second zone Zone 2corresponding to a logical address ZSLBA 2 of a zone included in acommand CMD 1 and may write the compression data Comp_DATA 1 at a nextstorage location of the identified write pointer WP2. Also, the zonemanagement circuitry 310 may identify the write pointer WP3 of thesecond zone Zone 3 corresponding to a logical address ZSLBA 3 of a zoneincluded in a command CMD 2 and may write the compression data Comp_DATA2 at a next storage location of the identified write pointer WP3.

In the illustration and description of FIG. 7 , it is illustrated anddescribed that the zone management circuitry 310 writes compression datareceived from the compression/decompression circuitry 320, but accordingto some example embodiments, the zone management circuitry 310 may writeuncompressed write data instead of the received compression data.

In detail, the zone management circuitry 310 may receive compressiondata and information about a real compression ratio of the compressiondata from the compression/decompression circuitry 320. For example, in acase where the compression/decompression circuitry 320 performscompression based on and/or using a write command unit, the zonemanagement circuitry 310 may receive information about a realcompression ratio for each compression data corresponding to a writecommand. Also, the zone management circuitry 310 may compare a realcompression ratio with a target compression ratio corresponding to azone to write, for each compression data and may write compression dataor write data on the basis of a result of the comparison.

For example, when a real compression ratio of the compression dataComp_DATA 1 received from the compression/decompression circuitry 320 is85% and is higher than a target compression ratio of 75%, the zonemanagement circuitry 320 may read before-write data DATA 1 from a bufferand may write the read data DATA 1 in a zone. As another example, when areal compression ratio of the compression data Comp_DATA 2 received fromthe compression/decompression circuitry 320 is 50% and is equal to atarget compression ratio of 50%, the zone management circuitry 320 maywrite the compression data Comp_DATA 2 in a zone.

In a case where the compression/decompression circuitry 320 performscompression by block units, the zone management circuitry 310 maycompare a real compression ratio with a target compression ratiocorresponding to a zone to write, for each block and may writecompression data or write data on the basis of a result of thecomparison.

For example, referring to FIG. 6 , when a real compression ratio of afirst block of a plurality of blocks (e.g., two blocks, etc.)constituting the compression data Comp_DATA 2 is 60% and is higher thana target compression ratio of 50%, the zone management circuitry 320 maywrite a plurality of blocks, corresponding to the first block amongbefore-compression data DATA 2, in a zone. Also, when a real compressionratio of a second block constituting the compression data Comp_DATA 2 is50% and is equal to a target compression ratio of 50%, the zonemanagement circuitry 320 may write a second block in a zone, etc.

As described above, the zone management circuitry 320 may determine datawhich is to be written, based on a real compression rate for each block,and thus, may write compressed data and uncompressed data in a zone.Therefore, for convenience of management, the zone management circuitry310 may change the ordering of pieces of data to divide the pieces ofdata into compressed data and uncompressed data, and may write thecompressed data and the uncompressed data in a zone.

FIG. 8 is a conceptual diagram illustrating an operation of updating awrite pointer, according to at least one example embodiment. In detail,FIG. 8 is a diagram illustrating an operation of updating a writepointer by using the zone management circuitry 310 of FIGS. 1 and 2 .

Referring to FIGS. 4 to 8 , when writing of pieces of compression dataComp_DATA 0, Comp_DATA 1, and Comp_DATA 2 is completed, the zonemanagement circuitry 310 may update a plurality of write pointers, e.g.,WP1, WP2, and WP3, etc., of a plurality of zones. For example, the zonemanagement circuitry 310 may update the write pointer WP1 to a new writepointer WP1′ so as to indicate a last storage location, at which thecompression data Comp_DATA 0 is written, of a first zone Zone 1. Also,the zone management circuitry 310 may update the write pointer WP2 to anew write pointer WP2′ so as to indicate a last storage location, atwhich the compression data Comp_DATA 1 is written, of a second zone Zone2. Also, the zone management circuitry 310 may update the write pointerWP3 to a new write pointer WP3′ so as to indicate a last storagelocation, at which the compression data Comp_DATA 2 is written, of athird zone Zone 3.

FIG. 9 is a conceptual diagram illustrating an operation of transferringcompression information, according to at least one example embodiment.In detail, FIG. 9 is a diagram illustrating an operation of transferringcompression information through a completion queue CQ of the zonemanagement circuitry 310 of FIGS. 1 and 2 . When the zone managementcircuitry 310 completes a write operation according to a request of thehost 100, the zone management circuitry 310 may notify a completionqueue CQ of the host 100 of command completion. Here, a completion queueCQ may store a processing result of an operation corresponding to acommand of the host 100.

Referring to FIGS. 4 to 9 , based on a plurality of commands CMD 0, CMD1, and CMD 2 received from the host 100, the zone management circuitry310 according to at least one example embodiment may write pieces ofcompression data Comp_DATA 0, Comp_DATA 1, and Comp_DATA 2 in the NVM400 and may store, as a processing result of a write operation,compression information in the completion queue CQ of the host 100.Here, the compression information may denote information associated witha magnitude of each of the pieces of compression data Comp_DATA 0,Comp_DATA 1, and Comp_DATA 2, etc. Also, the host 100 may manage acapacity of each of a plurality of zones (for example, first to thirdzones) Zone 1, Zone 2, and Zone 3, etc., on the basis of compressioninformation.

In at least one example embodiment, information associated with amagnitude of compression data may include write pointers WP1, WP2, andWP3 and updated write pointers WP1′, WP2′, and WP3′ of a plurality ofzones before the pieces of compression data Comp_DATA 0, Comp_DATA 1,and Comp_DATA 2 are written. That is, the zone management circuitry 310may store, as a processing result of a write operation based on thecommands CMD 0, CMD 1, and CMD 2, before-write write pointers, e.g.,WP1, WP2, and WP3, etc., and updated write pointers, e.g., WP1′, WP2′,and WP3′, etc., in the completion queue CQ of the host 100. Also, thehost 100 may calculate magnitudes of the pieces of compression dataComp_DATA 0, Comp_DATA 1, and Comp_DATA 2 by using differences betweenthe before-write write pointers WP1, WP2, and WP3 and the updated writepointers WP1′, WP2′, and WP3′ stored in the completion queue CQ, and maymanage capacities of the plurality of zones Zone 1, Zone 2, and Zone 3on the basis of the calculated magnitudes.

For example, referring to FIG. 9 , the zone management circuitry 310 maystore, as a processing result of a write operation based on the commandCMD 0, the write pointers WP1 and WP1′ of the first zone Zone 1 in thecompletion queue CQ of the host 100. Also, the zone management circuitry310 may store, as a processing result of a write operation based on thecommand CMD 1, the write pointers WP2 and WP2′ of the second zone Zone 2in the completion queue CQ of the host 100. The zone managementcircuitry 310 may store, as a processing result of a write operationbased on the command CMD 2, the write pointers WP3 and WP3′ of the thirdzone Zone 3 in the completion queue CQ of the host 100.

In a modifiable embodiment, the zone management circuitry 310 may storethe magnitudes of the pieces of compression data Comp_DATA 0, Comp_DATA1, and Comp_DATA 2 in the completion queue CQ of the host 100. That is,the zone management circuitry 310 may calculate the magnitudes of thepieces of compression data Comp_DATA 0, Comp_DATA 1, and Comp_DATA 2 byusing the differences (e.g., memory location differences) between thebefore-write write pointers WP1, WP2, and WP3 and the updated writepointers WP1′, WP2′, and WP3′, and may store the calculated magnitudesin the completion queue CQ. Also, the host 100 may manage the capacitiesof the plurality of zones Zone 1, Zone 2, and Zone 3 on the basis of themagnitudes stored in the completion queue CQ.

FIG. 10 is a diagram illustrating a mapping table MT according to atleast one example embodiment.

Referring to FIG. 10 , the mapping table MT according to at least oneexample embodiment may include the presence of compression and mappinginformation about mapping of a logical address LBA, a start physicaladdress Start PPN, and a finish physical address Finish PPN.

The start physical address Start PPN and the finish physical addressFinish PPN may denote a physical address, corresponding to a startlocation of an area of a memory storing data, and a physical addresscorresponding to a last location of the area of the memory. The mappingtable MT may be stored in the NVM 400, and then, may be loaded into abuffer (not shown) or a working memory (not shown), such as DRAM, etc.,by the controller 300. The presence of compression may represent whetherdata is compressed by the compression/decompression circuitry 320, ormay represent raw data, which is not compressed.

The mapping table MT may differ based on a compression unit of thecompression/decompression circuitry 320. In detail, in a case where thecompression/decompression circuitry 320 compresses the data by blockunits, the mapping table MT may include mapping information for eachblock. Also, in a case where the compression/decompression circuitry 320performs compression on the basis of a write command unit, the mappingtable MT may include mapping information for each write command, etc.

When a read request is received from the host 100, the zone managementcircuitry 310 may identify a logical address LBA included in the readrequest, identify a start physical address Start PPN and a finishphysical address Finish PPN each corresponding to the identified logicaladdress LBA (and/or logical address range) with reference to the mappingtable MT, and read data on the basis of the identified physicaladdresses. Also, the zone management circuitry 310 may identify acompression method of a zone corresponding to the read request by usingthe zone management table ZMT. Also, the zone management circuitry 310may transfer the read data and information about the identifiedcompression method to the compression/decompression circuitry 320 torequest decompression.

Also, the compression/decompression circuitry 320 may decompressreceived data on the basis of the transferred information about theidentified compression method according to a request of the zonemanagement circuitry 310. For example, when read data, and informationabout a compression ratio of 75% (e.g., corresponding to the zone wherethe data was read from), are received from the zone management circuitry310, the compression/decompression circuitry 320 may decompress the readdata compressed at a compression ratio of 75% to have abefore-compression magnitude (e.g., size).

When information indicating whether the data stored at the logicaladdress LBA included in the read request is not compressed, e.g.,described as N in the mapping table MT, the zone management circuitry310 may directly transfer the read data to the host 100, but the exampleembodiments are not limited thereto.

FIG. 11 is a flowchart illustrating a write operation performed betweena host, a controller, and a non-volatile memory, according to at leastone example embodiment. In detail, FIG. 11 is a flowchart illustratingan example of a write operation performed by the host 100, thecontroller 300, and the NVM 400 of FIG. 1 .

Referring to FIGS. 1 and 11 , in operation S110, the host 100 maytransfer data DATA and a command CMD requesting a write operation to thecontroller 300. Also, in operation S120, the controller 300 may identifya target zone where the data DATA is to be written, based on a logicaladdress included in the transferred command CMD. Also, in operationS130, the controller 300 may compress the data DATA according to acompression method corresponding to the target zone to generatecompression data Comp_DATA, etc.

Also, in operation S140, the controller 300 may transfer, to the NVM400, the compression data Comp_DATA and a control command CTRL forcontrolling the writing of the compression data Comp_DATA. In detail,the controller 300 may identify a write pointer representing a storagelocation, at which data is lastly written (e.g., was last written, wasmost recently written, etc.), of the target zone and may transfer, tothe NVM 400, the control command CTRL for controlling writing of thecompression data Comp_DATA at a next storage location of a writepointer, but the example embodiments are not limited thereto. Also, inoperation S150, the NVM 400 may store the transferred compression dataComp_DATA at a next storage location of the target zone according to thecontrol command CTRL. Also, when storing is completed, the NVM 400 maytransfer a response signal Response, representing completion of storing,to the controller 300 in operation S160.

According to some example embodiments, when a real compression ratio ofthe compression data Comp_DATA is higher than a compression ratiocorresponding to the target zone, the controller 300 may transfer thedata DATA, received from the host 100, to the NVM 400. Also, the NVM 400may store the transferred data DATA at a next storage location of thetarget zone, etc.

Also, when the response signal Response is received from the NMV 400,the controller 300 may generate information Info_WP about a writepointer in operation S170. In detail, the controller 300 may generatethe information Info_WP about the write pointer which includes a writepointer of the target zone before the compression data Comp_DATA iswritten (e.g., an initial write pointer, etc.), and a write pointer ofthe target zone after the compression data Comp_DATA is written (e.g.,an updated write pointer, etc.). Also, in operation S180, the controller300 may transfer, to the host 100, the response signal Responsecorresponding to the command CMD along with the generated informationInfo_WP about the write pointer. In detail, the controller 300 may storethe information Info_WP about the write pointer in the completion queueCQ of the host 100 and may transfer the response signal Responsecorresponding to the command CMD, etc.

FIG. 12 is a flowchart illustrating a write operation performed betweena zone management circuitry, a compression/decompression circuitry, anda non-volatile memory, according to at least one example embodiment. Indetail, FIG. 12 is a flowchart illustrating an example of a writeoperation performed by the zone management circuitry 310, thecompression/decompression circuitry 320, and the NVM 400 of FIG. 1 .

Referring to FIGS. 1 and 12 , in operation S210, the zone managementcircuitry 310 may receive data DATA and a command CMD, requesting awrite operation, from the host 100. Also, in operation S215, the zonemanagement circuitry 310 may identify a target zone where the data DATAis to be written, based on a logical address included in the receivedcommand CMD, etc.

Also, in operation S220, the zone management circuitry 310 may transfer,to the compression/decompression circuitry 320, the data DATA and arequest signal REQ requesting compression of the data DATA on the basisof a compression method corresponding to the target zone. For example,the zone management circuitry 310 may identify the compression methodcorresponding to the target zone with reference to the zone managementtable ZMT including information about a compression method of each of aplurality of zones 410-1 to 410-n. Also, the zone management circuitry310 may transfer, to the compression/decompression circuitry 320, thedata DATA and a compression request REQ requesting compression of thedata DATA on the basis of the identified compression method, etc.

Also, in operation S225, the compression/decompression circuitry 320 maycompress the data DATA on the basis of received information about thecompression method according to the compression request REQ of the zonemanagement circuitry 310. Also, in operation S230, thecompression/decompression circuitry 320 may transfer the compressiondata Comp_DATA, generated through compression, to the zone managementcircuitry 310.

Also, in operation S235, the zone management circuitry 310 may identifya write pointer WP representing a storage location, at which data islastly written, of the target zone. Also, in operation S240, the zonemanagement circuitry 310 may transfer, to the NVM 400, the compressiondata Comp_DATA and a control signal CTRL (e.g., instruction, command,etc.) for allowing the compression data Comp_DATA to be written at anext storage location of the identified write pointer WP.

Also, in operation S245, the NVM 400 may store the transferredcompression data Comp_DATA at a next storage location of the target zoneaccording to the control command CTRL. Also, when storing is completed,the NVM 400 may transfer a response signal Response, representingcompletion of storing, to the zone management circuitry 310 in operationS250.

According to some example embodiments, when a real compression ratio ofthe compression data Comp_DATA is higher than a compression ratiocorresponding to the target zone, the zone management circuitry 310 maytransfer the data DATA, received from the host 100, to the NVM 400.Also, the NVM 400 may store the transferred data DATA at a next storagelocation of the target zone.

Also, when the response signal Response is received from the NMV 400,the zone management circuitry 310 may generate information Info_WP abouta write pointer in operation S255. For example, the zone managementcircuitry 310 may generate the information Info_WP about the writepointer which includes a write pointer of the target zone before thecompression data Comp_DATA is written (e.g., initial write pointer,etc.), and a write pointer of the target zone after the compression dataComp_DATA is written (e.g., updated write pointer, etc.). Also, inoperation S260, the zone management circuitry 310 may transfer, to thehost 100, the generated information Info_WP about the write pointer(s)(e.g., information regarding and/or based on the initial write pointerand the updated write pointer, etc.).

FIG. 13 is a flowchart illustrating a read operation performed between ahost, a controller, and a non-volatile memory, according to at least oneexample embodiment. In detail, FIG. 13 is a flowchart illustrating anexample of a read operation performed by the host 100, the controller300, and the NVM 400 of FIG. 1 .

Referring to FIGS. 1 and 13 , in operation S310, the host 100 maytransfer a command CMD, requesting a read operation, to the controller300, etc. Also, in operation S320, the controller 300 may identify atarget zone from which data is to be read, based on a logical addressincluded in the transferred command CMD. Also, the controller 300 mayidentify physical addresses corresponding to the logical address and/ortarget data size in operation S330. In detail, the controller 300 mayidentify a start physical address Start PPN and a finish physicaladdress Finish PPN each corresponding to the logical address (and/orlogical address range) by using the mapping table MT, but is not limitedthereto.

Also, in operation S340, the controller 300 may transfer a controlcommand CTRL, controlling a read operation, to the NVM 400. For example,the controller 300 may transfer the control command CTRL, controllingthe read operation, to the NVM 400 on the basis of a start physicaladdress Start PPN and a finish physical address Finish PPN, eachrepresenting a location at which data for requesting read is stored, butthe example embodiments are not limited thereto, and for example, thecontroller 300 may transfer the start physical address Start PPN anddata length/data size information to the NVM 400, etc. Also, inoperation S350, the NVM 400 may read data from a target zone accordingto the control command CTRL. Also, in operation S360, the NVM 400 maytransfer a response signal Response, representing read completion, tothe controller 300 along with read data DATA.

Also, in operation S370, the controller 300 may decompress the read dataDATA. For example, the controller 300 may identify a compression methodcorresponding to the target zone and may decompress the read data DATAby using a decompression method corresponding to the identifiedcompression method corresponding to the target zone. Also, in operationS380, the controller 300 may transfer a response signal Response,representing read completion, to the host 100 along with decompressiondata Decomp_DATA.

According to some example embodiments, the controller 300 may identifywhether the read data DATA is compressed or not, and when the read dataDATA is not compressed, the controller 300 may immediately transfer theread data DATA to the host 100, but the example embodiments are notlimited thereto.

FIG. 14 is a flowchart illustrating a read operation performed between azone management circuitry, a compression/decompression circuitry, and anon-volatile memory, according to at least one example embodiment. Indetail, FIG. 14 is a flowchart illustrating an example of a readoperation performed by the zone management circuitry 310, thecompression/decompression circuitry 320, and the NVM 400 of FIG. 1 .

Referring to FIGS. 1 and 14 , in operation S410, the zone managementcircuitry 310 may receive a command CMD, requesting a read operation,from the host 100. Also, in operation S415, the zone managementcircuitry 310 may identify a target zone from which data is to be read,based on a logical address (and/or logical address range, data sizeinformation, etc.) included in the received command CMD. Also, the zonemanagement circuitry 310 may identify physical addresses correspondingto the logical address in operation S420. In detail, the zone managementcircuitry 310 may identify a start physical address Start PPN and afinish physical address Finish PPN each corresponding to the logicaladdress (and/or logical address range, etc.) by using the mapping tableMT.

Also, in operation S425, the zone management circuitry 310 may transfera control command CTRL, controlling a read operation, to the NVM 400. Indetail, the zone management circuitry 310 may transfer the controlcommand CTRL, controlling the read operation, to the NVM 400 on thebasis of a start physical address Start PPN and a finish physicaladdress Finish PPN, each representing a location at which data forrequesting read is stored, etc. Also, in operation S430, the NVM 400 mayread data from a target zone according to the control command CTRL.Also, in operation S435, the NVM 400 may transfer a response signalResponse, representing read completion, to the controller 300 along withread data DATA, etc.

Also, in operation S440, the zone management circuitry 310 may transfera decompression request REQ, requesting decompression, to thecompression/decompression circuitry 320 along with the read data DATA.For example, the zone management circuitry 310 may identify thecompression method corresponding to the target zone with reference tothe zone management table ZMT. Also, the zone management circuitry 310may transfer a decompression request REQ, requesting decompression ofthe read data DATA, to the compression/decompression circuitry 320 alongwith the read data DATA, and information about the compression method ofthe target zone, etc.

Also, in operation S445, the compression/decompression circuitry 320 maycompress the read data DATA on the basis of received information aboutthe compression method according to the decompression request REQ of thezone management circuitry 310. Also, in operation S450, thecompression/decompression circuitry 320 may transfer the decompresseddata Decomp_DATA, generated through decompression, to the zonemanagement circuitry 310. Also, in operation S455, the zone managementcircuitry 310 may transfer the decompressed data Decomp_DATA to the host100, but the example embodiments are not limited thereto.

According to some example embodiments, the zone management circuitry 310may identify whether the read data DATA is compressed or not, and whenthe read data DATA is not compressed, the zone management circuitry 310may directly transfer the read data DATA to the host 100 without passingthrough the compression/decompression circuitry 320, but the exampleembodiments are not limited thereto.

FIG. 15 is a flowchart illustrating an operating method of a storagedevice according to at least one example embodiment. In detail, FIG. 15is a flowchart illustrating an example of a write operation of thestorage device 200 of FIG. 1 . At least a portion of a write operationof a storage device according to at least one example embodiment may beperformed by the controller 300 of FIG. 1 .

Referring to FIGS. 1 and 15 , first, the storage device 200 may receivea write request from a host in operation S510. The storage space of theNVM 400 may be set to a plurality of zones on the basis of an attributeof write data (e.g., based on and/or corresponding to the compressionattribute of the write data, etc.), and the write request may include alogical address of (e.g., associated with, corresponding to, etc.) atarget zone among the plurality of zones. Also, in operation S520, thestorage device 200 may identify the target zone among the plurality ofzones on the basis of the logical address (e.g., the storage device 200determines the target zone of a write request based on the logicaladdress by determining which zone the logical address is includedwithin, etc.). Also, in operation S530, the storage device 200 maycompress write data on the basis of a compression method correspondingto the target zone. Also, in operation S540, the storage device 200 maysequentially write the compressed write data in the target zone. Indetail, the storage device 200 may write the compressed write datasequentially from a storage location next to a storage location, atwhich data is lastly written (e.g., most recently written, etc.), in thetarget zone. When a real compression ratio of the compressed write datais higher than a compression ratio corresponding to the target zone, thestorage device 200 may write the received write data (e.g., uncompressedwrite data and/or the original write data, etc.) in the target zone, butthe example embodiments are not limited thereto.

As described above, the storage system 200 according to at least oneexample embodiment may individually set the degree of compression on thebasis of an attribute of data written in each of a plurality of zones,and thus, may appropriately adjust the tradeoff between datainput/output latency and the space efficiency of a storage device.

FIG. 16 is a block diagram illustrating a configuration of a controller300 according to at least one example embodiment. In detail, FIG. 16 isa block diagram illustrating a configuration of the controller 300 ofFIG. 1 .

Referring to FIG. 16 , the controller 300 may include at least oneprocessor 340 (e.g., processing circuitry, etc.), a memory 350, a hostinterface 360, an NVM interface 370, and/or a buffer 380, and theelements may communicate with one another through at least one bus, butthe example embodiments are not limited thereto, and for example, thecontroller 300 may include a greater or lesser number of constituentcomponents.

The processor 340 may include a central processing unit (CPU) or amicroprocessor and may control an overall operation of the controller300. In at least one example embodiment, the processor 340 may beprocessing circuitry which may include hardware such as logic circuits;a hardware/software combination such as at least one processor coreexecuting software and/or executing any instruction set; or acombination thereof. For example, the processor 340 more specificallymay include, but is not limited to, at least one multi-core processor(e.g., a dual-core processor, a quad-core processor, etc.), a fieldprogrammable gate array (FPGA), a programmable logic unit, anapplication-specific integrated circuit (ASIC), a system-on-chip (SOC),an intellectual property (IP) block, etc. In at least one exampleembodiment, the processor 340 may control an overall operationassociated with a host command received from a host HOST.

The memory 350 may operate based on control by the processor 340 and maybe used as a working memory, a buffer memory, a cache memory, or thelike. For example, the memory 350 may be implemented as a volatilememory, such as DRAM or static random access memory (SRAM), or an NVMsuch as phase change random access memory (PRAM) or flash memory, etc.

According to at least one example embodiment, the discussedfunctionality of the zone management circuitry 310 and/or thecompression/decompression circuitry 320 may be implemented as firmwareand/or software (e.g., computer readable instructions, etc.), and may beloaded into the memory 350, for execution by the processor 340 and/orfor execution by separate processing circuits, etc. For example, thefunctionality of the zone management circuitry 310 and/or thecompression/decompression circuitry 320 may be implemented in a flashtranslation layer (FTL) and may be loaded into the memory 350. However,the example embodiments are not limited thereto, and the zone managementcircuitry 310 and/or the compression/decompression circuitry 320 may beimplemented as hardware. Operations described above with reference toFIGS. 1 to 15 may be performed by the processor 340 by using the zonemanagement circuitry 310 and/or the compression/decompression circuitry320.

The host interface 360 may provide an interface between the host HOSTand the controller 300, and for example, may provide an interface basedon universal serial bus (USB), multimedia card (MMC), PCI express(PIC-E), advanced technology attachment (ATA), serial AT attachment(SATA), parallel AT attachment (PATA), small computer system interface(SCSI), serial attached SCSI (SAS), enhanced small disk interface(ESDI), integrated drive electronics (IDE), or the like. The NVMinterface 370 may provide an interface between the controller 300 and anNVM.

The buffer 380 may temporarily store write data received from the hostHOST. The zone management circuitry 310 may identify a compression ratioof compression data received from the compression/decompressioncircuitry 320 and may determine whether the identified compression ratiois higher than a compression ratio corresponding to a zone where thecompression data is to be stored. For example, when the identifiedcompression ratio is higher than the compression ratio, the zonemanagement circuitry 310 may read raw data, corresponding to thecompression data, from the buffer 380 and may write the read raw data ina corresponding zone, but the example embodiments are not limitedthereto.

FIG. 17 is a block diagram illustrating a network system 1000 includinga server system according to at least one example embodiment. Thenetwork system 1000 may include at least one server system 1010 and/or aplurality of terminals 1030_1 to 1030_n communicating with the serversystem 1010 over at least one network 1020, but the example embodimentsare not limited thereto. The server system 1010 may include a server1011 and a solid state drive (SSD) 1012, etc. In this case, the SSD 1012may correspond to the storage device 200 according to at least oneexample embodiment described above. In some example embodiments, the SSD1012 may be implemented by using at least one example embodimentdescribed above with reference to FIGS. 1 to 16 .

While various example embodiments of the inventive concepts have beenparticularly shown and described with reference to example embodimentsthereof, it will be understood that various changes in form and detailsmay be made therein without departing from the spirit and scope of thefollowing claims.

What is claimed is:
 1. A storage device comprising: a non-volatilememory including a plurality of zones, the plurality of zones includingat least a first zone and a second zone, the first zone and the secondzone having a first compression ratio and a second compression ratio,respectively, and the first and second compression ratios received froma host; and a controller configured to, receive a first write commandand first data from the host, identify the first zone based on a firstlogical address in the first write command, compress the first databased on the first compression ratio, write the compressed datasequentially to the first zone, update an information in response to thewriting of the compressed first data, and transfer the information tothe host.
 2. The storage device of claim 1, wherein the firstcompression ratio is determined according to a compression rate of azone corresponding to the first write command when the first writecommand is received from the host.
 3. The storage device of claim 1,wherein the information includes a storage location of the compressedfirst data at the first zone.
 4. The storage device of claim 1, whereinthe information includes a first storage location before the compressedfirst data is written and a second storage location after the compressedfirst data is written.
 5. The storage device of claim 1, wherein theinformation includes a magnitude of the compressed first data inresponse to sequentially writing the compressed first data.
 6. Thestorage device of claim 4, wherein a magnitude of the compressed firstdata is calculated using the difference between the first storagelocation and the second storage location.
 7. The storage device of claim1, further comprising: a buffer configured to store a mapping table, themapping table including mapping information about mapping of at leastone logical address, a start physical address and a finish physicaladdress to a corresponding storage location of the non-volatile memoryat which data is written; and wherein the information includes themapping information related to a mapping of the first logical address toa first start physical address and a first finish physical address of astorage location at which the compressed first data is written.
 8. Thestorage device of claim 7, wherein the mapping table determines a unitfor storing the mapping information according to a data compression unitof the controller.
 9. The storage device of claim 7, wherein thecontroller is configured to: receive a read command from the host; readsecond data corresponding to a second logical address from thenon-volatile memory based on the mapping table; decompress the readsecond data based on mapping table information corresponding to thesecond logical address; and transfer the decompressed second data to thehost.
 10. The storage device of claim 9, wherein the informationincludes information on whether the second data is compressed or not.11. The storage device of claim 3, wherein the storage location of thecompressed first data at the first zone is indicated using a writepointer.
 12. The storage device of claim 11, wherein the controller isconfigured to: identify an initial write pointer representing a laststorage location of the first zone, and write the compressed first datasequentially to a next storage location from the last storage locationof the first zone based on the identified write pointer.
 13. A storagesystem comprising: a host; a storage device including a non-volatilememory and controller, the non-volatile memory including a plurality ofzones and configured to sequentially store data, and the controllerconfigured to control the non-volatile memory, the plurality of zonesincluding at least a first zone and a second zone, the first zone andthe second zone having a first compression ratio and a secondcompression ratio; the host is configured to transfer write data and awrite command including a logical address to the storage device; and thestorage device is configured to, receive a first write command and firstdata from the host, identify the first zone based on a first logicaladdress in the first write command, compress the first data based on thefirst compression ratio, write the compressed data sequentially to thefirst zone, update an information in response to the writing of thecompressed first data, and transfer the information to the host.
 14. Thestorage system of claim 13, wherein the information includes a firststorage location before the compressed first data is written and asecond storage location after the compressed first data is written. 15.The storage system of claim 14, wherein the host is configured to:manage a capacity of the first zone based on the first storage locationand the second storage location.
 16. The storage system of claim 15,wherein the host is configured to: calculate a magnitude of thecompressed first data using a difference between the first storagelocation and the second storage location; and manage the capacity of thefirst zone based on the magnitude of the compressed first data.
 17. Anoperating method of a storage device including a non-volatile memoryincluding a plurality of zones sequentially storing data, the pluralityof zones including at least a first zone and a second zone, the firstzone and the second zone having a first compression ratio and a secondcompression ratio, the operating method comprising: receiving, usingprocessing circuitry, a first write command and first data from a host;identifying, using the processing circuitry, the first zone of theplurality of zones based on a first logical address included in thefirst write command; compressing, using the processing circuitry, thefirst data based on the first compression ratio; writing, using theprocessing circuitry, the compressed first data sequentially to thefirst zone; updating, using the processing circuitry, an information inresponse to the writing of the compressed first data; and transferring,using the processing circuitry, the information to the host.
 18. Theoperating method of claim 17, further comprising: storing, using theprocessing circuitry, mapping information including information relatedto a mapping of the first logical address to a first start physicaladdress and a first finish physical address of a storage location atwhich the compressed first data is written.
 19. The operating method ofclaim 18, further comprising: receiving, using the processing circuitry,a read command from the host, the read command including a secondlogical address; reading, using the processing circuitry, datacorresponding to a second logical address from the non-volatile memorybased on the second logical address and mapping informationcorresponding to the second logical address; identifying, using theprocessing circuitry, a zone corresponding to the second logical addressamong the plurality of zones; decompressing, using the processingcircuitry, the read data according to decompression settingscorresponding to the identified zone; and transferring, using theprocessing circuitry, the decompressed data to the host.
 20. Theoperating method of claim 19, wherein the information includes at leastone of a storage location of the compressed first data, a magnitude ofthe compressed first data, the mapping information, whether or not thesecond data is compressed, or any combinations thereof.